package com.company;

// 管理人员：月薪 + 奖金计薪
public class Manager extends Employee {
    private double monthlySalary; // 固定月薪
    private double bonus;         // 月度奖金

    // 构造方法
    public Manager(String name, String empId, double monthlySalary, double bonus) {
        super(name, empId);
        this.monthlySalary = monthlySalary;
        this.bonus = bonus;
    }

    // 计算薪资：月薪 + 奖金（自动修正负数）
    @Override
    public double calculateSalary() {
        // 确保薪资不为负
        double validSalary = Math.max(monthlySalary, 0);
        double validBonus = Math.max(bonus, 0);
        return validSalary + validBonus;
    }

    // 生成工资条字符串
    @Override
    public String generatePaySlip() {
        StringBuilder slip = new StringBuilder();
        slip.append("===== 工资条 =====\n")
                .append("员工类型：管理人员\n")
                .append("工号：").append(getEmpId()).append("\n")
                .append("姓名：").append(getName()).append("\n")
                .append("固定月薪：").append(monthlySalary).append("元\n")
                .append("月度奖金：").append(bonus).append("元\n")
                .append("应发薪资：").append(String.format("%.2f", calculateSalary())).append("元\n")
                .append("==================");
        return slip.toString();
    }

    // setter方法（用于更新奖金）
    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
}